package DAO;

import javax.management.Query;
import util.HibernateUtil;
import java.util.List;   
import model.Grupo;
import model.Usuario;
import org.hibernate.HibernateException;  
import org.hibernate.Session;  
import org.hibernate.Transaction;  

public class UsuarioDAO {
    Usuario usuario = new Usuario();
    Session sessao = HibernateUtil.getSession();
    Transaction t = sessao.beginTransaction();

    public void inserir(Usuario usuario) {
        try {
            sessao.beginTransaction();
            sessao.save(usuario);
            sessao.flush();
            t.commit();
            sessao.close();
        } catch (HibernateException erro) {
            erro.printStackTrace();
        }
    }
    public List executarBusca(String query) {
        Session sessao = HibernateUtil.getSession();
        Transaction t = sessao.beginTransaction();
        List result = sessao.createQuery(query).list();
        t.commit();
        sessao.close();
        return result;
    }
    
    public void alterar(Usuario usuario) {
        try {
            sessao.update(usuario);
            sessao.getTransaction().commit();
            sessao.close();
            t.commit();
        } catch (HibernateException erro) {
            erro.printStackTrace();
        }
    }

    public void excluir(int id) {
        try {
            Usuario usu = (Usuario) sessao.get(Usuario.class, id);
            sessao.delete(usu);  
            sessao.flush();  
            t.commit();
        } catch (HibernateException erro) {
            erro.printStackTrace();
        }
    }
    public boolean autentica(String login, String senha){
        List user = executarBusca("from Usuario as u WHERE u.login like '"+login+"' and u.senha like '"+senha+"'");
        
        if (user.isEmpty()){
            System.out.println("Fail!");
            return false;
        }else{
            //usuario = (Usuario) listaUsuario;
            //if(usuario.getSenha().toString().equals(senha)){
            //}
            return true;

        }
        
    }
      
      
}
